$(document).ready(function() {
	
	var getRootPath = function() {  
	    var pathName = window.location.pathname.substring(1);
	    var webName = pathName == '' ? '' : pathName.substring(0, pathName.indexOf('/'));  
	    return window.location.protocol + '//' + window.location.host + '/' + webName + '/';  
	}  
	
	var pathHead = getRootPath();
	
    // 分页导航显示
    var paging = function(currentPage, totalPage) {
        if($("#pages").val() >= 1) {
            $(".navigation").show();
            if(currentPage == null && totalPage == null) {
                currentPage = $("#pageNum").val();
                totalPage = $("#pages").val();
            }
            var lis = "";

            $("#ul li:not(:first):not(:last)").remove();

            if(3 <= currentPage) {
                lis += '<li ><a class="go-page">'+ (currentPage - 2) + '</a></li>';
            }
            if( 2 <= currentPage) {
                lis += '<li ><a class="go-page">' + (currentPage - 1) + '</a></li>';
            }
            lis += '<li class="active"><a aria-label="Previous" class="go-page" id="go">' + (currentPage) + '</a></li>';
            if(totalPage - currentPage >=1) {
                lis += '<li ><a>'+ (currentPage -1 + 2) + '</a></li>';
            }
            if(totalPage - currentPage >= 2) {
                lis += '<li ><a>' + (currentPage -1 + 3) + '</a></li>';
            }

            $("#ul li").eq(0).after(lis);

            $("#pages").val(totalPage);
            $("#pageNum").val(currentPage);
        } else {
            $(".navigation").hide();
        }
    }
    
    // 初始化页面导航
    paging(null, null);

    // 更新数量
    updateProductQuantity = function(obj) {
        var quantity = $(obj).val();
        var cartId = $(obj).attr("id");
        cartId = cartId.substr(2);
        var pageNum = $("#pageNum").val();

        $.ajax({
            type: "post",
            url: "/maigang/cart/update",
            data: {
                cartId : cartId,
                quantity: quantity,
                pageNum: pageNum
            },
            cache: false,
            async : true,
            dataType: "json",
            success: function (data)
            {
                /*var far_parent = $(obj).parent().parent();
                console.log("aaa", $(far_parent).children("td:last-child"))*/
                ajaxPage($("#pageNum").val());
                /*$("#sum").val(data.data.cartTotalPrice)*/
            },
            error:function () {
                alert("请求失败！");
            }
        })
    }

    // 单选
    var selectOrUnselectOne = function(obj) {
        // 根据此复选框是否被选中，决定向不同的接口请求数据
        var isChecked = $(obj).is(':checked');
        var url = "";
        url = isChecked ? "/maigang/cart/select":"/cart/un_select";

        // 获得当前cartId
        var cartIds = $(obj).val();

        $.ajax({
            type: "post",
            url: url,
            data: {
                cartIds : cartIds
            },
            cache: false,
            async : true,
            dataType: "json",
            success: function (data)
            {
                /*alert("修改成功");*/
            },
            error:function () {
                alert("请求失败！");
            }
        })

    }

    // 全选/反选
    $("#selectAll").click(function(){
        var isChecked=$("#selectAll").is(':checked');  //获得全选复选框是否选中
        $("input[type='checkbox']").each(function() {
            this.checked = isChecked;      //循环赋值给每个复选框是否选中
        });

        // 获得当前页的所有cartIds
        var cartIds = '';
        $("input[type='checkbox']").each(function() {
            if($(this).val() != 'selectAll') {
                cartIds += $(this).val() + ',';
            }
        });

        var url = "/maigang/cart/un_select_all";
        if(isChecked) {
            url = "/maigang/cart/select_all";
        }

        $.ajax({
            url:url,
            data:{
                cartIds: cartIds
            },
            cache: false,
            async : true,
            dataType: "json",
            success:function(data){
                ajaxPage($("#pageNum").val());
            }
        });
    });

    // 删除cart
    $("#delete").click(function(){
        var pageNum = $("#pageNum").val();
        var cartIds = '';
        $("input[type='checkbox']").each(function() {
            if($(this).val() != 'selectAll' && this.checked == true) {
                cartIds += $(this).val() + ',';
            }
        });

        if(cartIds.length > 0) {
            $.ajax({
                url:"/maigang/cart/delete_product",
                data:{
                    cartIds : cartIds
                },
                cache: false,
                async : true,
                dataType: "json",
                success:function(data){
                    // 获得当前页的正确值
                    var currentPage = $("#pageNum").val();
                    if(currentPage > (data.data.pageInfo.pages)) {
                        currentPage = data.data.pageInfo.pages;
                    }

                    if(pages >= 1) {
                        $(".navigation").show();
                        // 获取分页数据
                        ajaxPage(currentPage);
                    } else {
                        $(".navigation").hide();
                    }
                }
            });
        }
    });

    // 点击下一页触发
    $("#next_page").click(function() {
        if($("#pages").val() > $("#pageNum").val()){
            var currentPage = $("#pageNum").val() -1 + 2;

            // 设置新的当前页
            $("#pageNum").val(currentPage);

            // 分页显示
            ajaxPage(currentPage);
        }
    });

    // 点击上一页触发
    $("#up_page").click(function() {
        if($("#pageNum").val() >= 2) {
            var currentPage = $("#pageNum").val() -1 ;
            $("#pageNum").val(currentPage);
            ajaxPage(currentPage);
        }
    });

    // 获得list数据
    var ajaxPage = function(pageNum) {
        $.ajax({
            type: "post",
            url: '/maigang/cart/list',
            data: {
                pageNum : pageNum
            },
            cache: false,
            async : true,
            dataType: "json",
            success: function (data)
            {
                // 得出当前页和总页数.
                pageNum = data.data.pageInfo.pageNum;
                var pages = data.data.pageInfo.pages;

                // 获得当前页数据并且渲染列表
                listTable(data);

                // 显示分页导航栏
                paging(pageNum, pages);

                // 显示当前页选中商品价值总和
                $("#sum").val(data.data.cartTotalPrice);
            },
            error:function () {
                alert("请求失败！");
            }
        });
    }

    // 渲染table
    var listTable = function (data) {
        var trs = [];
        var tds = [];
        var trDom;
        var userList = data.data.cartProducVoList;

        // 删除表格中除第一行的所有剩余表格
        $("#table tr:not(:first)").remove()

        // 将获取到的数据重新插入表格
        for(var i = 0; i < userList.length; i++) {
            trDom = $('<tr></tr>');
            if(userList[i].productChecked == 0) {
                $('<td class="cbx">' + '<input type="checkbox" value=' + userList[i].id + '>' +
                    '</td>').appendTo(trDom);
            } else {
                $('<td class="cbx">' + '<input type="checkbox" checked value=' + userList[i].id + '>' +
                    '</td>').appendTo(trDom);
            }
            $('<td>' + '<img width="50px" height="50px" src=' + pathHead + 'static/cart/image/test.jpg>' + '</td>').appendTo(trDom);
            $('<td>' + 'XXXXXXXXXX' + '</td>').appendTo(trDom);
            $('<td>' + '<input type="text" class="form-control" id=id' + userList[i].id +
                ' value=' + userList[i].quantity + ' onblur="updateProductQuantity(this)"'
                + '>' +  '</td>').appendTo(trDom);
            $('<td>' + userList[i].productPrice + '</td>').appendTo(trDom);
            $('<td>' + userList[i].productTotalPrice + '</td>').appendTo(trDom);
            trs.push(trDom);
        }
        for(var j = 0; j < trs.length; j++) {
            $(trs[j]).appendTo($('#table'));
        }

        // 显示当前页选中商品价值总和
        $("#sum").val(data.data.cartTotalPrice);
    }
});